/**
 * 异步任务管理器
 */
class AsyncManager {
  /**
   * 操作延迟10毫秒
   */
  private readonly OPERATE_DELAY_TIME = 10;

  /**
   * 异步操作任务池
   */
  private static instance: AsyncManager;

  /**
   * 单例模式
   */
  private constructor() { }

  /**
   * 获取单例
   */
  public static me(): AsyncManager {
    if (!AsyncManager.instance) {
      AsyncManager.instance = new AsyncManager();
    }
    return AsyncManager.instance;
  }

  /**
   * 执行任务
   * @param task 任务
   */
  public execute(task: () => void): void {
    setTimeout(() => {
      try {
        task();
      } catch (error) {
        console.error('执行异步任务时发生错误:', error);
      }
    }, this.OPERATE_DELAY_TIME);
  }

  /**
   * 停止任务线程池
   */
  public shutdown(): void {
    // Node.js中不需要显式关闭，GC会自动处理
    console.log('异步任务管理器已关闭');
  }
}

export default AsyncManager; 